Connectionless networks, such as the Internet, often suffer from large amounts of packet loss. Such loss is extremely troublesome for real time applications, such as voice and video, especially on wide-area transmissions. These applications are delay sensitive, and therefore can not afford to retransmit lost data. Furthermore, loss conditions on the connectionless network may vary, even during the duration of a single session. To compensate for these conditions, traditional forward error correcting codes (FEC) have been proposed for use on packet networks, including the Internet. Typically, these codes are statically determined and signaled out of band, so that the code in use cannot be changed easily during the duration of one transmission from a user. Furthermore, when the media in use are of the multicast or broadcast types, out-of-band signaling is often not possible and the FEC code is not changed. The use of a static FEC code provides too much transmitted error-correcting code when loss rates are low and thus wastes bandwidth and provides too little transmitted error-correcting code and resulting poor reception quality when loss rates are high.
Nevertheless, conventional practice is to use a single FEC code, signaled once, out of band. Recently, in-band signaling in a more dynamic application has been proposed for multicast. The changing of codes would, however, be quite restricted to a small set of predetermined codes. A further drawback is that all recipients would be required to understand FEC encoding and its algorithm. In multicast groups, this is an unreasonable expectation. Thus, more versatile and effective error correction is needed for transmission networks and especially for connectionless network applications.